<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body></body>
<script>

    /*使用的promise的最佳实践:
        1. 执行器中一定要有异步代码
        2. then方法对应的回调中最好要返回一个新的promise*/


    var promise = new Promise(function (resolve, reject){
        //发送第一次ajax请求
        setTimeout((flag)=>{
            if(flag){
                resolve("第一次请求成功")
            }else {
                reject("第一次请求失败")
            }
        },2000,true)
    })

    //一般都是then方法先调用  然后promise状态才确定
    //then方法的两个参数是两个异步的回调
    //思考异步回调: 1.这个回调函数什么时候进队列 2.这个回调函数什么时候被执行

    //promise.then所对应的回调返回什么样的promise  promise.then所返回的promise与之保持同等的状态!
    promise.then(()=>{
        //发送第二次ajax请求
        return new Promise((resolve, reject)=>{
            setTimeout((flag)=>{
                if(flag){
                    resolve("第二次请求成功")
                }else {
                    reject("第二次请求失败")
                }
            },2000,true)
        })
    })
    .then(()=>{
        return new Promise((resolve, reject)=>{
            setTimeout((flag)=>{
                if(flag){
                    resolve("第三次请求成功")
                }else {
                    reject("第三次请求失败")
                }
            },2000,true)
        })
    })


</script>
</html>